home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 1.iso / dist / fw_apache2.idb / usr / freeware / apache2 / include / ap_mmn.h.z / ap_mmn.h
C/C++ Source or Header  |  2002-07-08  |  7KB  |  148 lines

  1. /* ====================================================================
  2.  * The Apache Software License, Version 1.1
  3.  *
  4.  * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
  5.  * reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  *
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer.
  13.  *
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  *
  19.  * 3. The end-user documentation included with the redistribution,
  20.  *    if any, must include the following acknowledgment:
  21.  *       "This product includes software developed by the
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowledgment may appear in the software itself,
  24.  *    if and wherever such third-party acknowledgments normally appear.
  25.  *
  26.  * 4. The names "Apache" and "Apache Software Foundation" must
  27.  *    not be used to endorse or promote products derived from this
  28.  *    software without prior written permission. For written
  29.  *    permission, please contact apache@apache.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "Apache",
  32.  *    nor may "Apache" appear in their name, without prior written
  33.  *    permission of the Apache Software Foundation.
  34.  *
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  *
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation.  For more
  51.  * information on the Apache Software Foundation, please see
  52.  * <http://www.apache.org/>.
  53.  */
  54.  
  55. #ifndef APACHE_AP_MMN_H
  56. #define APACHE_AP_MMN_H
  57.  
  58. /**
  59.  * @package Module Magic Number
  60.  */
  61.  
  62. /*
  63.  * MODULE_MAGIC_NUMBER_MAJOR
  64.  * Major API changes that could cause compatibility problems for older modules
  65.  * such as structure size changes.  No binary compatibility is possible across
  66.  * a change in the major version.
  67.  *
  68.  * MODULE_MAGIC_NUMBER_MINOR
  69.  * Minor API changes that do not cause binary compatibility problems.
  70.  * Should be reset to 0 when upgrading MODULE_MAGIC_NUMBER_MAJOR.
  71.  *
  72.  * See the MODULE_MAGIC_AT_LEAST macro below for an example.
  73.  */
  74.  
  75. /*
  76.  * 20010224 (2.0.13-dev) MODULE_MAGIC_COOKIE reset to "AP20"
  77.  * 20010523 (2.0.19-dev) bump for scoreboard structure reordering
  78.  * 20010627 (2.0.19-dev) more API changes than I can count
  79.  * 20010726 (2.0.22-dev) more big API changes
  80.  * 20010808 (2.0.23-dev) dir d_is_absolute bit introduced, bucket changes, etc
  81.  * 20010825 (2.0.25-dev) removed d_is_absolute, introduced map_to_storage hook
  82.  * 20011002 (2.0.26-dev) removed 1.3-depreciated request_rec.content_language
  83.  * 20011127 (2.0.29-dev) bump for postconfig hook change, and removal of socket
  84.  *                       from connection record
  85.  * 20011212 (2.0.30-dev) bump for new used_path_info member of request_rec
  86.  * 20011218 (2.0.30-dev) bump for new sbh member of conn_rec, different 
  87.  *                       declarations for scoreboard, new parameter to
  88.  *                       create_connection hook
  89.  * 20020102 (2.0.30-dev) bump for changed type of limit_req_body in 
  90.  *                       core_dir_config
  91.  * 20020109 (2.0.31-dev) bump for changed shm and scoreboard declarations
  92.  * 20020111 (2.0.31-dev) bump for ETag fields added at end of cor_dir_config
  93.  * 20020114 (2.0.31-dev) mod_dav changed how it asks its provider to fulfill
  94.  *                       a GET request
  95.  * 20020118 (2.0.31-dev) Input filtering split of blocking and mode
  96.  * 20020127 (2.0.31-dev) bump for pre_mpm hook change
  97.  * 20020128 (2.0.31-dev) bump for pre_config hook change
  98.  * 20020218 (2.0.33-dev) bump for AddOutputFilterByType directive
  99.  * 20020220 (2.0.33-dev) bump for scoreboard.h structure change
  100.  * 20020302 (2.0.33-dev) bump for protocol_filter additions.
  101.  * 20020306 (2.0.34-dev) bump for filter type renames.
  102.  * 20020318 (2.0.34-dev) mod_dav's API for REPORT generation changed
  103.  * 20020319 (2.0.34-dev) M_INVALID changed, plus new M_* methods for RFC 3253
  104.  * 20020327 (2.0.35-dev) Add parameter to quick_handler hook
  105.  * 20020329 (2.0.35-dev) bump for addition of freelists to bucket API
  106.  * 20020329.1 (2.0.36) minor bump for new arg to opt fn ap_cgi_build_command
  107.  * 20020506 (2.0.37-dev) Removed r->boundary in request_rec.
  108.  * 20020529 (2.0.37-dev) Standardized the names of some apr_pool_*_set funcs
  109.  * 20020602 (2.0.37-dev) Bucket API change (metadata buckets)
  110.  * 20020612 (2.0.38-dev) Changed server_rec->[keep_alive_]timeout to apr time
  111.  */
  112.  
  113. #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
  114.  
  115. #ifndef MODULE_MAGIC_NUMBER_MAJOR
  116. #define MODULE_MAGIC_NUMBER_MAJOR 20020612
  117. #endif
  118. #define MODULE_MAGIC_NUMBER_MINOR 1                     /* 0...n */
  119.  
  120. /**
  121.  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
  122.  * specified value.
  123.  * <pre>
  124.  * Useful for testing for features.
  125.  * For example, suppose you wish to use the apr_table_overlap
  126.  *    function.  You can do this:
  127.  * 
  128.  * #if AP_MODULE_MAGIC_AT_LEAST(19980812,2)
  129.  *     ... use apr_table_overlap()
  130.  * #else
  131.  *     ... alternative code which doesn't use apr_table_overlap()
  132.  * #endif
  133.  * </pre>
  134.  * @param major The major module magic number
  135.  * @param minor The minor module magic number
  136.  * @deffunc AP_MODULE_MAGIC_AT_LEAST(int major, int minor)
  137.  */
  138. #define AP_MODULE_MAGIC_AT_LEAST(major,minor)        \
  139.     ((major) < MODULE_MAGIC_NUMBER_MAJOR         \
  140.     || ((major) == MODULE_MAGIC_NUMBER_MAJOR     \
  141.         && (minor) <= MODULE_MAGIC_NUMBER_MINOR))
  142.  
  143. /** @deprecated present for backwards compatibility */
  144. #define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR
  145. #define MODULE_MAGIC_AT_LEAST old_broken_macro_we_hope_you_are_not_using
  146.  
  147. #endif /* !APACHE_AP_MMN_H */
  148.